package com.sojson.base;

import java.util.List;

/**
 * Mapper映射基础实现类(目的:封装公共方法)
 * 
 * @author liu
 * @date 2020-08-21
 */
public interface BaseDao<Dto> {

    /**
     * 单条插入
     * 
     * @param dto
     * @return
     */
    int insert(Dto dto);

    /**
     * 批量插入
     * 
     * @param list
     * @return
     */
    int insertList(List<Dto> list);

    /**
     * 通过对象批量删除(物理删除)
     * 
     * @param dto
     * @return
     */
    int deleteByDto(Dto dto);

    /**
     * 统计全部数量
     * 
     * @return
     */
    int countAll();

    /**
     * 查询所有
     * 
     * @return
     */
    List<Dto> listAll();

    /**
     * 根据对象统计数量
     * 
     * @param dto
     * @return
     */
    int countByDto(Dto dto);

    /**
     * 根据对象查询
     * 
     * @param dto
     * @return
     */
    List<Dto> listByDto(Dto dto);

}